package middleware

import (
	"main/handlers"
	"net/http"

	"github.com/gin-gonic/gin"
)

// 查询码表
func GetcodeTypeList(c *gin.Context) {
	// 从 URL 查询参数中获取 code_type 参数
	code_type := c.DefaultQuery("code_type", "")                 // 可以设置默认值为空字符串
	code_parent_value := c.DefaultQuery("code_parent_value", "") // 可以设置默认值为空字符串

	// 如果 code_type 没有传入，返回错误提示
	if code_type == "" {
		c.JSON(http.StatusBadRequest, gin.H{"error": "参数错误"})
		return
	}

	// 基础查询条件
	query := `
	SELECT * FROM sys_code a
	WHERE a.code_type = ?
	`

	// 如果 code_parent_value 不为空，添加额外的查询条件
	var queryParams []interface{}
	queryParams = append(queryParams, code_type)
	if code_parent_value != "" {
		query += " AND a.code_parent_value = ?"
		queryParams = append(queryParams, code_parent_value)
	}

	// 执行查询并处理任何错误
	results, err := handlers.ExecuteQuery(query, queryParams...)
	if err != nil {
		c.JSON(http.StatusInternalServerError, gin.H{"error": "数据库查询错误", "details": err.Error()})
		return
	}

	// 如果没有找到任何结果，返回空的结果集
	// if len(results) == 0 {
	// 	c.JSON(http.StatusNotFound, gin.H{"message": "空数据"})
	// 	return
	// }

	// 返回查询结果
	c.JSON(http.StatusOK, results)
}
